package adminService

import (
	"gin/chibuda/app/utils"
	"github.com/gohouse/gorose/v2"
)

//获取管理员个人信息
func UserInfo(uid interface{}) utils.Service{
	info , _ := Db().Table("admin_user a").
		LeftJoin("admin_role b","a.role_id","=","b.id").
		Fields("a.id,a.name,a.role_id,a.nick_name,b.name as role_name").
		Where("a.id",uid).
		First()
	return utils.Success(info)
}

//初始化路由
func GetRouter(roleId interface{}) utils.Service{
	list, _ :=Db().Table("amdin_role_menu a").
		LeftJoin("admin_menu b","a.menu_id","=","b.id").
		Order("b.sort desc").
		Where("a.role_id",roleId).
		Fields("b.*").
		Get()
	res := GetRouterInitChild(0 ,list)
	return utils.Success(res)
}
func GetRouterInitChild( pid interface{},list []gorose.Data) interface{}{
	var arr []gorose.Data
	for _,v :=range list  {
		if pid == v["pid"] {
			v["child"] = GetRouterInitChild(v["id"].(int64),list)
			arr = append(arr,v)
		}
	}
	return arr
}

func GetIcon() utils.Service{
	list , _ := Db().Table("admin_icon").Where("status","1").Get()
	return utils.Success(list)
}

func ChangePsd( uid interface{},data map[string]string ) utils.Service{
	info,_:=Db().Table("admin_user").Where("id",uid).First()
	newPsd := utils.Md5(data["newPsd"] + info["solt"].(string))
	if len(data["newPsd"]) < 5{
		return utils.Error("密码长度需大于5")
	}
	if newPsd == info["password"].(string){
		return utils.Error("新密码不能和旧密码一致")
	}
	err := Db().Transaction(
		// 第一个业务
		func(db gorose.IOrm) error {
			_,err := db.Table("admin_user").Where("id",uid).Update(&gorose.Data{"password":newPsd})
			if err!=nil {
				return err
			}
			return nil
		},
	)
	if err != nil{
		return utils.Error("修改失败")
	}
	return utils.Success()
}

//获取菜单
func Test() utils.Service{
	return utils.Success()
}


